The present invention relates to the improvement in performance and reliability of serial information as stored or retrieved using tape and/or re-writable optical drives. More particularly, the invention is a method and apparatus for interfacing an external computer to a set of such storage devices.
Magnetic tape and/or re-writable optical drive memories for use with digital computer systems are known. Although many types of tape and/or re-writable optical drives are known, the present invention will be described using tape drives. However, nothing herein should be taken to limit the invention to that particular embodiment.
Many computer systems use a plurality of tape drive memories to store data. A common known architecture for such systems is shown in FIG. 1. Therein, computer 10 is coupled by means of channel buses 15 to a tape controller 22 to a plurality of tape drives 26.
Each tape drive in the system is accessed and the data thereon transferred individually. The tape controller 22 associated with each tape drive 26 controls the input/output operations for the particular tape drive to which it is coupled. Data stored on a tape is available for transmission to computer 10 over channel buses 15. When the computer transmits data to be written on the tapes, the controller 22 receives the data for the individual tape drives from one of the channel buses 15. In this type of system, tape operations are synchronous in relationship to each other.
In the case where one of the controllers experiences a failure, the computer and computer operator must take action to isolate the failed controller and to switch the tape formerly under the failed computer's control to a properly functioning other tape controller. The switching requires the computer and the operator to perform a number of operations. First they must isolate the failed computer. This means that all data flow directed to the failed controller must be stopped and then after the tape is mounted the data flow is redirected to a working controller and tape drive.
In the system described above, it is necessary for the computer and the operator to be involved with rerouting data away from a failed controller or tape drive. The necessary operations performed by the computer and operator in completing the rerouting requires the computer and operator's attention. This places additional functions on the computer and operator which may delay other functions while the computer and operator are working on the rerouting. As a result, the entire computer system is slowed down.
Another problem associated with tape operations, in particular writing and reading, is an associated probability of error. Procedures and apparatus have been developed which can detect and, in some cases, correct the errors which occur during the reading and writing of the tapes. With relation to a generic tape drive, the tape is divided into a plurality of data blocks, each block having the same, predetermined size. Each block has a particular format which includes an ECC ("Error Correction Code") which allows for the detection and correction of errors within the data block.
When a tape is written to, the controller generates the ECC and appends it to the data; then the new data and the new ECC data are written onto the tape.
Read operations are similar in that initially both the data and the ECC are read. If no errors are detected the data is transmitted to the computer. If errors are detected, the error correction function located within the tape controller tries to correct the error. If this is possible, the correction data is transmitted. Otherwise, the tape controller signals to the computer that an uncorrectable error has been detected.
In the system shown in FIG. 2, computer 10 is coupled by means of channel buses 15 to the tape controller 32 which is coupled to bus 34. The bus 34, a Small Computer Standard Interface ("SCSI"), is individually coupled to a plurality of tape drives 38, through connections 36. The American National Standard for Information Processing ("ANSI") has promulgated a standard for SCSI which is described in ANSI document number X3.130-1986.
In this system, as blocks of data are read from the individual tape drives, the data is verified with the ECC, and then the data is individually and sequentially placed on the bus 34 and is then transmitted to the computer 10 over channel buses 15 through controller 32. If additional processing by the controller 32 is required, then the data and the ECC is transmitted over bus 34 sequentially. The bus 34 width can be 8-bits, 16-bits, or 32-bits wide.
Those tape systems which utilize known error corrections techniques have several short comings. In the systems illustrated in FIGS. 1 and 2, data transmission is sequential over a single bus with a relatively slow rate of data transfer. Additionally, as the error correction circuitry must wait until a block of data of predefined size is assembled before it can detect and correct errors therein, there is an unavoidable delay while such detection and correction takes place.
As stated, the most common form of data transmission in these systems is serial data transmission. Given that tape drives have a fixed bandwidth, it takes a fixed and relatively large amount of time for transmission of the data between the tapes and the computer. If a single tape fails, all of the data on that tape may not be usable. Therefore, a system which has a plurality of tape drives which can increase the rate of data transfer between the computer and the tape drives and more effectively match the data transfer rate to the computer's maximum efficient operating speed is desirable. The system should also be able to conduct this high rate of data transfer while performing all necessary error detection and correction functions and at the same time provide an acceptable level of performance even when an individual tape of tape drive fails.
Another failing of prior art systems is that they do not exploit the full range of data organizations that are possible in a system using groups of tape drives. A tape storage apparatus made up of a plurality of tapes may be called upon to operate as a logical tape device for running applications having high data transfer rates. For example, an application requiring very large data transfers requires higher bandwidth. Known operating techniques for physical tape sets do not provide the capability of configuring a single set of reliable tape drives to provide extremely high data transfer rates.
It would therefore be desirable to be able to provide a tape storage apparatus, made up of a plurality of physical tape drives, which could provide the necessary high bandwidth, along with high reliability.